In a network environment that connects multiple server computer systems and multiple client computer systems, resources (e.g., images, video, audio, text, or any type of content) can be stored on one or more of the server computer systems. An example of such a network environment is the Internet. For example, a publisher of an Internet website can store resources included in the web pages of the website on a server computer system that hosts the website. The client computer systems can access the resources by transmitting requests for the content over a network that connects the server computer systems and the client computer systems, and receiving the responses in response to the requests. For example, a user of a client computer system can request resources hosted by the server computer system by visiting the website.
A speed at which a user of a client computer system receives a resource in response to a request for the resource can depend, in part, on the latency and/or the bandwidth of the network. For example, a speed at which a large movie file can be retrieved from the server computer system and presented on the client computer system can be slower compared to a speed at which a relatively smaller text file can be retrieved and presented. Moreover, a file stored locally on the client computer system can be presented to the user faster than if the same file were stored on the server computer system because a delay in transmitting a request for the file and receiving the file over the network can be eliminated. The speed can also depend on a network path between the client computer system and the server computer system. For example, if a number of network hops between the client computer system and the server computer system is low, then the speed at which the user's request is transmitted to the server computer system and the resource is transmitted to the client computer system is high.
While generally described as computer-implemented software embodied on tangible media that processes and transforms the respective data, some or all of the aspects may be computer-implemented methods or further included in respective systems or other devices for performing this described functionality. The details of these and other aspects and implementations of the present disclosure are set forth in the accompanying drawings and the description below. Other features and advantages of the disclosure will be apparent from the description and drawings, and from the claims.
Like reference numbers and designations in the various drawings indicate like elements.